package com.duobaoyu.dby.supply.common.biz.vo.order;

import com.duobaoyu.dby.supply.common.biz.serializer.BigDecimalSerializer;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * 补单分页列表VO
 * @author chenms
 * @date 2023/10/17 4:01 PM
 */
@Data
public class OrderRepairPageVO implements Serializable {

    /**
     * 供应链订单号
     */
    @ApiModelProperty(value = "供应链订单号")
    private String orderSn;

    /**
     * 供应链交易单号
     */
    @ApiModelProperty(value = "供应链交易单号")
    private String supplyTradeSn;

    /**
     * 业务订单交易号
     */
    @ApiModelProperty(value = "业务订单交易号")
    private String bizTradeSn;

    /**
     * 渠道编码
     */
    @ApiModelProperty(value = "渠道编码")
    private String channelCode;

    /**
     * 渠道名称
     */
    @ApiModelProperty(value = "渠道名称")
    private String channelCodeMsg;

    /**
     * 渠道订单金额
     */
    @ApiModelProperty(value = "渠道订单金额")
    @JsonSerialize(using = BigDecimalSerializer.class)
    private BigDecimal channelOrderAmount;

    /**
     * 补单状态：1-待补单 2-补单中 3-补单失败 4-已补单 5-已关闭
     */
    @ApiModelProperty(value = "补单状态：1-待补单 2-补单中 3-补单失败 4-已补单 5-已关闭")
    private Integer repairStatus;

    /**
     * 补单状态描述
     */
    @ApiModelProperty(value = "补单状态描述")
    private String repairStatusStr;

    /**
     * 商户ID
     */
    @ApiModelProperty(value = "商户ID")
    private String mchId;

    /**
     * 失败类型
     */
    @ApiModelProperty(value = "失败类型")
    private Integer exceptionType;

    /**
     * 失败类型描述
     */
    @ApiModelProperty(value = "失败类型描述")
    private String exceptionTypeStr;

    /**
     * 失败详情
     */
    @ApiModelProperty(value = "失败详情")
    private String failDesc;

    /**
     * 展示来源渠道
     */
    @ApiModelProperty(value = "展示来源渠道")
    private String showServerName;

    /**
     * 补单次数
     */
    @ApiModelProperty(value = "补单次数")
    private Integer repairTimes;

    /**
     * 创建时间
     */
    @ApiModelProperty(value = "创建时间")
    private LocalDateTime createTime;
}
